package com.yqb.study.annotation.multidatasource;

import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.yqb.study.constant.multidatasource.DataSourceEnum;

/**
 * 
 * 多数据源标识
 * 自定义注解DataSource
 * @Inherited                            使用此注解声明出来的自定义注解，在使用此自定义注解时，如果注解在类上面时，子类会自动继承此注解，否则的话，子类不会继承此注解
 * @Retention(RetentionPolicy.RUNTIME)   这种类型的Annotations将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用，即运行时保留
 * @Target({ ElementType.METHOD })       说明了Annotation所修饰的对象范围，用于描述方法
 */
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.METHOD })
public @interface DataSourceAnt {
	DataSourceEnum dataSourceEnum() default DataSourceEnum.MASTERDB;
}
